// LastItem 得到元组类型中的最后一个元素

// type LastItem<T> = T extends [infer L, ...infer R] ? (R extends [infer LL] ? R : LastItem<R>) : never // 有点啰嗦了
type LastItem<T> = T extends [...infer L,infer R] ? R : never // 简洁点
type A = LastItem<[string, number, boolean]> // boolean
type B = LastItem<['B', 'F', 'E']> // 'E'
type C = LastItem<[]> // never
type D = LastItem<''> // never

export {}